With the continued progress of globalization, more corporations than ever before have workgroups spread across countries and continents across the world. To support and increase the productivity of remote and telecommuting workgroups, communications companies are considering more cost effective network services and solutions that combine voice, wireless, data and video functionality. Acquiring these desired network services and solutions requires connections from the Internet and wireless and wired networks to Public Switched Telephone Networks (PSTNs) using a flexible, robust, scalable and cost-effective media gateway.
Today, all communications can be routed through computers. Widespread access to broadband Internet and the ubiquity of Internet Protocol (IP) enable the convergence of voice, data and video. Media gateways provide the ability to switch voice media between a network and its access point. Using Digital Subscriber Line (DSL) and fast-Internet cable technology, a media gateway converts, compresses, and packetizes voice data for transmission back-and-forth across the Internet backbone for wired and wireless phones. Media gateways sit at the intersection of the PSTNs and wireless or IP-based networks.
Multiple market demands are pushing companies to converge all of their media services using media gateways with VoIP capabilities. As such, the development of media servers has allowed this convergence of media services into media gateways with VoIP capabilities. A media server is responsible for sending a continuous stream of data representing audio, video or other media in real-time. In the telecommunications industry there are different standards derived by IETF and other organizations on how a media server, also known as a media gateway (MG), can be controlled by applications. Applications controlling the MG are known as media gateway controllers (MGCs). Different standards like Media Gateway Control Protocol (MGCP) as defined in RFC-3435, MEGACO defined in RFC-3525 , and MSML defined in RFC-4722, for example, are used to control a MG from a MGC.
An important feature for MG systems is load balancing among multiple MGs. When more than one MG (a “node”) is running in a “cluster” of MG nodes, there is generally a MGC that is controlling the many MGs. The MGC has knowledge of each node in the cluster that is statically configured in the MGC, and it explicitly makes decisions on when to use a particular node in order to evenly balance load among the cluster. Currently, the number of nodes in a cluster is pre-determined and fixed in the MGC. The MGC is not able to handle additional nodes being added to the cluster during runtime, and cannot handle the removal of nodes from a cluster during runtime. As such, a mechanism to achieve transparent load balancing by an MGC without the MGC having to be aware of the number of MG nodes in a cluster would be beneficial.